avatar

目录
solr 7.0 maven 集成,引擎搭建

项目背景:

最近工作用到solr做搜索,觉得挺有趣,自己创建一套引擎,也方便研究。
看网上基本都是手动配置的,拷贝jar包,没有maven集成的,有集成solr版本也很老。
所以先自己与maven 集成了一下。
之后 可能会有一些 定制化的功能添加到这个项目中。如自定义分词器,自定义评分等。

solr使用:
本项目只是引擎,关于solr的使用,我放在另一个项目中,
另一个项目主要用来 使用solr,和一些 自定义的solrUtils,拼音,
业务场景下的solr 条件拼接,搜索,文章feed,suggest等多中功能的具体实现和说明
附带,测试数据。

github 地址

Code
1
https://github.com/Eric-ly/solr_engine

一,前期配置/说明

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1.下载tomcat 8,在bin中添加 工程中的setenv.sh ,自定义 tomcat的启动参数

export SOLR_HOME="$CATALINA_HOME/webapps/lsearch/WEB-INF/solr_home"
export SOLR_LOG="$CATALINA_HOME/logs/"
export TOMCAT_USER="tomcat"
export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=$SOLR_HOME -Dsolr.solr.log.dir=$SOLR_LOG -Dbootstrap_conf=true -DhostContext=lsearch"

配置solr.home 和solr.log,这样就不需要在web.xml中写死了。


2.修改classes中的log4j.properties 中的solr.log ,这样在tomcat 启动参数 就可以设置solr log了

solr.log=${catalina.base}/logs

3.与单机版solr不同,不需要在web.xml中打开 env标签配置 solr home,在tomcat的启动参数中设置solr home就可以

4.集成了 ik分词器,将ik的jar包 放在了WEB-INF的lib中,lib同级配置了ik的配置文件

5.solr的jar包 在maven的pom中进行了配置。不需要像单机中的copy jar包。

二,使用说明

1.mvn clean install 打包,打成的war包 放到tomcat的webapps下 ,增加setenv.sh 文件,执行bin下的脚本。

./startup.sh
http://localhost:8081/lsearch/index.html

2.idea配置tomcat,deployment 中deploy Artifact war 包,启动tomcat后 访问 url可以直接访问。

http://localhost:8081/lsearch/index.html

三,测试数据

四,遇到的坑

1.solr.home 需要绝对路径写死,不灵活不太好,多次查询之后,修改tomcat的启动参数

Code
1
-Dsolr.solr.home=$SOLR_HOME

2.solr.log. permisson问题

Code
1
2
3
log4j.properties 中的solr.log的目录没有对应,可以写死绝对路径,这里在tomcat的启动参数中增加
export SOLR_LOG="$CATALINA_HOME/logs/"
-Dsolr.solr.log.dir=$SOLR_LOG

3.tomcat 启动参数的测试

Code
1
2
(1)jps -v 查看jvm的参数
(2)tomcat的bin文件下,新建setenv.sh 里面设置jvm参数,之后用startup.sh 启动
  1. 404错误
Code
1
2
3
4
5
6
solr 各种会遇到404的问题,注意查看solr.log , catalina.out ,localhost.xxx.log 中的错误
(1)严重: Exception starting filter SolrRequestFilter java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet
解决:缺少metrics 等jar包

(2)web.xml 中的 注掉
(3)
文章作者: 美式不加糖
文章链接: http://yoursite.com/2020/02/04/solr%207.0%20maven%20%E9%9B%86%E6%88%90/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 湖畔小屋
打赏
  • 微信
    微信
  • 支付寶
    支付寶